﻿using System.Collections.Generic;
using System.Linq;
using Prompts.Service.ReportExecution;

namespace Prompts.Service.PromptService.Implementation
{
    public class StrictDefaultValuesProvider : IStrictDefaultValuesProvider
    {

        public IEnumerable<ValidValue> GetDefaultValues(PromptLevel promptLevel, IEnumerable<string> defaultValues)
        {
            var matchingAvailableItems = new List<ValidValue>();

            foreach (var valueParameterDefault in defaultValues)
            {
                var localValueParameterDefault = valueParameterDefault;
                var validValue = promptLevel.AvailableItems.Where(i => i.Value == localValueParameterDefault).SingleOrDefault();
                    
                if(validValue != null)
                {
                    matchingAvailableItems.Add(validValue);
                }
            }

            return matchingAvailableItems;
        }
    }
}